package com.hzz.dto.report;

import com.alibaba.fastjson.annotation.JSONField;
import com.fasterxml.jackson.annotation.JsonInclude;
import com.hzz.framework.dto.BaseDto;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

import javax.validation.constraints.Size;
import java.util.Date;

@Data
@NoArgsConstructor
@AllArgsConstructor
@JsonInclude(JsonInclude.Include.NON_NULL)
@ApiModel("报送任务-信息填报 DTO")
public class ReportTaskSubmitDto extends BaseDto {
    @ApiModelProperty("id")
    Long id;
    @ApiModelProperty("报送任务id")
    Long reportTaskId;
    @ApiModelProperty("填报日期")
    @JSONField(format = "yyyy-MM-dd")
    Date reportingDate;
    @ApiModelProperty("填报人id")
    Long reportingRiveruserId;
    @ApiModelProperty("填报人姓名")
    @Size(max = 255, message = "reportingRiveruserName最大255字符")
    String reportingRiveruserName;
    @ApiModelProperty("填报内容")
    String reportingContent;
    @ApiModelProperty("报告文档")
    @Size(max = 1255, message = "file最大1255字符")
    String file;
    @ApiModelProperty("审核状态")
    Integer auditState;
    @ApiModelProperty("提交状态")
    Integer state;
    @ApiModelProperty("审核经办人id")
    Long auditOperatorId;
    @ApiModelProperty("审核经办人姓名")
    @Size(max = 55, message = "auditOperatorName最大55字符")
    String auditOperatorName;
    @ApiModelProperty("审核说明")
    @Size(max = 255, message = "auditResult最大255字符")
    String auditResult;
    @ApiModelProperty("备注")
    @Size(max = 255, message = "memo最大255字符")
    String memo;
    @ApiModelProperty("版本号")
    Integer version;
    @ApiModelProperty("排序")
    Integer orderNo;
    @ApiModelProperty("删除标记")
    Integer delFlag;
    @ApiModelProperty("建立者id")
    Long createId;
    @ApiModelProperty("创建时间")
    @JSONField(format = "yyyy-MM-dd HH:mm:ss")
    Date dateCreated;
    @ApiModelProperty("更新时间")
    @JSONField(format = "yyyy-MM-dd HH:mm:ss")
    Date dateUpdated;

    @ApiModelProperty("报送标题")
    String title;
    @ApiModelProperty("报送类别")
    String type;
    @ApiModelProperty("报送单位id")
    Long taskOrgId;
    @ApiModelProperty("报送单位名称")
    String taskOrgName;
    @ApiModelProperty("发起人id")
    Long taskRiveruserId;
    @ApiModelProperty("发起人姓名")
    String taskRiveruserName;
    @ApiModelProperty("任务内容")
    String taskContent;
    @ApiModelProperty("发起日期")
    Date dateInitiation;
    @ApiModelProperty("截止日期")
    Date dateDeadline;
}
